Computer viruses burst onto the scene a few years ago and quickly became a major threat to the reliability of computer programs. A "computer virus" is so named because it is a piece of self-replicating code that attaches itself to a computer program. The code utilizes the computer program as a means for "infecting" another computer program by attaching a replica of itself to that program. The computer virus normally attaches itself to the permanent copy of the program, such as found on a hard disk, so that the virus is not lost once the power is turned off.
Computer viruses as a prank can be harmless except for the fact that they utilize valuable memory space. However, the prank can turn into vandalism if the computer virus intentionally or unintentionally damages the program. Computer virus "time bombs" can lay dormant within the memory of the computer until a certain event, such as a particular date and time occurs, and then spring into action, creating havoc within the computer system.
Various methods of the detecting computer viruses are known in the art. The typical computer virus detection program involves a compilation of the known viruses that infects computers and a program that searches for these viruses based upon their known means of infection. Another technique is utilized in a program known as V ANALYST II sold by BRM Technologies, Ltd. in which a "fingerprint" of a program is taken prior to infection and stored at a remote location. Alterations in the fingerprint taken at a later time are indicative of infection of the program.
Restoration of a computer program after it has been infected by a computer virus can be effected by copying a clean copy of the program from a backup file. However, in large computer systems, such as shared networks, this can be a time consuming process. In view of the large number of users of such systems, these systems are more vulnerable to a computer virus entering the system through one of the many users which further exacerbates the problem. In addition, where computer programs are constantly being changed in such a system, it is necessary to make frequent backup copies which result in the storage of enormous amounts of information. Accordingly, there is a need for a simple and rapid means to restore a computer program which has been infected with a computer virus.